[IA64] Cleanup duplicate kdump_find_rsvd_region()
authorAlex Williamson <alex.williamson@hp.com>
Thu, 17 Jan 2008 19:05:44 +0000 (12:05 -0700)
committerAlex Williamson <alex.williamson@hp.com>
Thu, 17 Jan 2008 19:05:44 +0000 (12:05 -0700)
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
xen/arch/ia64/linux-xen/efi.c

index c4d59cfeb39c419b913e98a5f3365f77a2c40f1b..ecc64f730e5b138538ca926f01fac5e0c1e30cee 100644 (file)
@@ -1211,8 +1211,9 @@ efi_initialize_iomem_resources(struct resource *code_resource,
                }
        }
 }
+#endif /* XEN */
 
-#ifdef CONFIG_KEXEC
+#if defined(CONFIG_KEXEC) || defined(XEN)
 /* find a block of memory aligned to 64M exclude reserved regions
    rsvd_regions are sorted
  */
@@ -1258,6 +1259,7 @@ kdump_find_rsvd_region (unsigned long size,
 }
 #endif
 
+#ifndef XEN
 #ifdef CONFIG_PROC_VMCORE
 /* locate the size find a the descriptor at a certain address */
 unsigned long
@@ -1288,49 +1290,3 @@ vmcore_find_descriptor_size (unsigned long address)
 }
 #endif
 #endif /* XEN */
-
-#ifdef XEN
-/* find a block of memory aligned to 64M exclude reserved regions
- * rsvd_regions are sorted
- */
-unsigned long
-kdump_find_rsvd_region(unsigned long size, struct rsvd_region *r, int n)
-{
-       int i;
-       u64 start, end;
-       u64 alignment = 1UL << _PAGE_SIZE_64M;
-       void *efi_map_start, *efi_map_end, *p;
-       efi_memory_desc_t *md;
-       u64 efi_desc_size;
-
-       efi_map_start = __va(ia64_boot_param->efi_memmap);
-       efi_map_end   = efi_map_start + ia64_boot_param->efi_memmap_size;
-       efi_desc_size = ia64_boot_param->efi_memdesc_size;
-
-       for (p = efi_map_start; p < efi_map_end; p += efi_desc_size) {
-               md = p;
-               if (!efi_wb(md))
-                       continue;
-               start = ALIGN(md->phys_addr, alignment);
-               end = efi_md_end(md);
-               for (i = 0; i < n; i++) {
-                       if (__pa(r[i].start) >= start && __pa(r[i].end) < end) {
-                               if (__pa(r[i].start) > start + size)
-                                       return start;
-                               start = ALIGN(__pa(r[i].end), alignment);
-                               if (i < n - 1
-                                   && __pa(r[i + 1].start) < start + size)
-                                       continue;
-                               else
-                                       break;
-                       }
-               }
-               if (end > start + size)
-                       return start;
-       }
-
-       printk(KERN_WARNING
-              "Cannot reserve 0x%lx byte of memory for crashdump\n", size);
-       return ~0UL;
-}
-#endif